(function($) {
    $.fn.jBootstrapMonthPage = function(config) {

        if (this.size() != 1)
            $.error('请为这个插件提供一个唯一的编号');
        
        var c = {
        	pageSize : 10,
        	total : 0,
        	pageCount : 1,
        	realPageCount : 1,
        	lastSelectedIndex : 1,
        	selectedIndex : 1,
        	maxPageButton: 3,
        	onPageClicked : null
        };
        
        return this.each(function() {

            var $this = $(this);
            if (config) $.extend(c, config);
            
            initPageButton();
            reBind();
            
            function initPageButton() {
            	$this.find('li').remove();
            	c.pageCount = Math.ceil(c.total/c.pageSize);
            	if(c.pageCount < 1) return;  
        		var pageCount = c.pageCount < c.maxPageButton ? c.pageCount : c.maxPageButton;
        		for(var index = 1; index <= pageCount; index++) {
                    var d = new Date(); 
                    d.setMonth(d.getMonth()-(pageCount-index)); 
        			$this.append('<li><a month="'+d.getFullYear()+'-'+ (d.getMonth()+1) +'-" href="#">'+d.getFullYear()+'年'+ (d.getMonth()+1) +'月</a></li>');
        			if(index == pageCount)
        				$this.append('<li><img class="imgLoading" src="resources/assets/img/loading_small.gif" /></li>');
                }
        		
        		var selButton = $this.find('li:nth-child('+c.selectedIndex+')');
        		selButton.addClass('active');
            }
            
            function updatePageButton() {
            }
            function onClickPage(pageBtn) {
            	c.lastSelectedIndex = c.selectedIndex; 
            	var text = $(pageBtn).attr("month");   
            	c.selectedIndex = text; 
            	if(c.onPageClicked) {
            		c.onPageClicked.call(this, $this, c.selectedIndex);
            	}
            	$this.find('li.active').removeClass('active');
            	pageBtn.parent().addClass('active');
            }
            
            function onPageBtnClick($_this) {
            	onClickPage($_this);
            }
            function reBind() {
            	$this.find("li a").each(function(){
            		$(this).unbind('pageClick');
            	}); 
                
            	$this.find("li a").each(function(){
            		$(this).bind('pageClick', function(e) {
            			onPageBtnClick($(this));
            		});
                });
            	
                $this.find("li a").click(function(e){
                	e.preventDefault();
                	$(this).trigger('pageClick', e);
                });
            }
        });
    };
})(jQuery);